//
//  NSDate+SinaDate.swift
//  GZWeibo007
//
//  Created by newuser on 16/1/4.
//  Copyright © 2016年 Apple. All rights reserved.
//

import Foundation
extension NSDate {

  ///将返回的时间转成系统的nsdate
    class func sinaDateToDate(string: String) -> NSDate {
    
        //创建系统时间
        let df = NSDateFormatter()
        
        //指定区域
        df.locale = NSLocale(localeIdentifier: "en")
        
        //指定格式
        df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        //将string 转场nsdate
        let date = df.dateFromString(string)
        
        //如果转换时间失败,就返回系统时间
        return date ?? NSDate()
    
    }
    
   ///  返回日期描述字符串
    func sinaDateDesription() -> String {
    
        //比较时间
        let calendar = NSCalendar.currentCalendar() //日历
        //判断是否为当天
        if calendar.isDateInToday(self) {
           // 获取self和当前时间相差多少秒
        let delta = Int(NSDate().timeIntervalSinceDate(self))
            //一分钟内
            if delta < 60 {
              return "刚刚"
            } else if delta < 60 * 60 {
              //一个小时内
                let m = delta / 60
                return "\(m) 分钟前"
            } else {
              let h = delta / (60 * 60)
                return "\(h) 小时前"
            }
        }
        var dateFormatter = ""
        
        if calendar.isDateInToday(self) {
           dateFormatter = "昨天 HH:mm"
        }else if calendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year) == NSComparisonResult.OrderedSame {
          // 同一年
            dateFormatter = "MM-dd HH:mm"
        } else if calendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year) == NSComparisonResult.OrderedAscending {
           //一年以外更早期
            dateFormatter = "yyyy-MM-dd HH:mm"
        }
        //将self 惊喜格式化
        let df = NSDateFormatter()
        df.locale = NSLocale(localeIdentifier: "en")
        df.dateFormat = dateFormatter
        
        //将当前对象格式化
        return df.stringFromDate(self)
    }
    

}